// 定义包名为 com.zhunaer.entity
package com.zhunaer.entity;

// 导入 java.util 包中的 Date 类，用于表示日期和时间
import java.util.Date;
// 导入 java.math 包中的 BigDecimal 类，用于高精度的十进制运算
import java.math.BigDecimal;

/**
 * Room 类代表一个房间实体，包含房间的各种属性和相关操作。
 */
public class Room {
    // 房间的唯一标识符
    private Integer roomId;
    // 所属店铺的唯一标识符
    private Integer shopId;
    // 房间的类型，例如单人间、双人间等
    private String roomType;
    // 床的类型，例如单人床、双人床等
    private String bedType;
    // 房间的价格，使用 BigDecimal 类型以保证精确计算
    private BigDecimal price;
    // 房间的库存数量
    private Integer stock;
    // 房间的关键词，用于搜索和分类
    private String roomKeywords;
    // 房间记录的创建时间
    private Date createdAt;

    // Getters and Setters

    /**
     * 获取房间的唯一标识符。
     * @return 房间的唯一标识符
     */
    public Integer getRoomId() {
        return roomId;
    }

    /**
     * 设置房间的唯一标识符。
     * @param roomId 房间的唯一标识符
     */
    public void setRoomId(Integer roomId) {
        this.roomId = roomId;
    }

    /**
     * 获取所属店铺的唯一标识符。
     * @return 所属店铺的唯一标识符
     */
    public Integer getShopId() {
        return shopId;
    }

    /**
     * 设置所属店铺的唯一标识符。
     * @param shopId 所属店铺的唯一标识符
     */
    public void setShopId(Integer shopId) {
        this.shopId = shopId;
    }

    /**
     * 获取房间的类型。
     * @return 房间的类型
     */
    public String getRoomType() {
        return roomType;
    }

    /**
     * 设置房间的类型。
     * @param roomType 房间的类型
     */
    public void setRoomType(String roomType) {
        this.roomType = roomType;
    }

    /**
     * 获取床的类型。
     * @return 床的类型
     */
    public String getBedType() {
        return bedType;
    }

    /**
     * 设置床的类型。
     * @param bedType 床的类型
     */
    public void setBedType(String bedType) {
        this.bedType = bedType;
    }

    /**
     * 获取房间的价格。
     * @return 房间的价格
     */
    public BigDecimal getPrice() {
        return price;
    }

    /**
     * 设置房间的价格。
     * @param price 房间的价格
     */
    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    /**
     * 将 Room 对象转换为字符串表示形式。
     * @return 包含 Room 对象所有属性的字符串
     */
    @Override
    public String toString() {
        return "Room{" +
                "roomId=" + roomId +
                ", shopId=" + shopId +
                ", roomType='" + roomType + '\'' +
                ", bedType='" + bedType + '\'' +
                ", price=" + price +
                ", stock=" + stock +
                ", roomKeywords='" + roomKeywords + '\'' +
                ", createdAt=" + createdAt +
                '}';
    }

    /**
     * 获取房间的库存数量。
     * @return 房间的库存数量
     */
    public Integer getStock() {
        return stock;
    }

    /**
     * 设置房间的库存数量。
     * @param stock 房间的库存数量
     */
    public void setStock(Integer stock) {
        this.stock = stock;
    }

    /**
     * 获取房间的关键词。
     * @return 房间的关键词
     */
    public String getRoomKeywords() {
        return roomKeywords;
    }

    /**
     * 设置房间的关键词。
     * @param roomKeywords 房间的关键词
     */
    public void setRoomKeywords(String roomKeywords) {
        this.roomKeywords = roomKeywords;
    }

    /**
     * 获取房间记录的创建时间。
     * @return 房间记录的创建时间
     */
    public Date getCreatedAt() {
        return createdAt;
    }

    /**
     * 设置房间记录的创建时间。
     * @param createdAt 房间记录的创建时间
     */
    public void setCreatedAt(Date createdAt) {
        this.createdAt = createdAt;
    }
}